Network computer systems generally include a plurality of geographically separated or distributed computer nodes that may be configured to communicate with each other via, and are interconnected by, network cabling. One conventional type of network computer system includes a network data storage subsystem that is configured to provide a centralized location in the network at which to store, and from which to retrieve data. Advantageously, by using such a storage subsystem in the network, many of the network's data storage management and control functions may be centralized at the subsystem, instead of being distributed among the network nodes.
One type of conventional network data storage subsystem, manufactured and sold by the Assignee of the subject application (hereinafter “Assignee”) under the tradename Symmetrix™ (hereinafter “the Assignee's conventional storage system”), includes a plurality of disk mass storage devices configured as one or more redundant arrays of independent (or inexpensive) disks (RAID). The disk devices are controlled by disk I/O controllers (commonly referred to as “back end” directors) that are coupled to a shared cache memory resource in the subsystem. The cache memory resource is also coupled to a plurality of host I/O controllers (commonly referred to as “front end” directors). The disk controllers are coupled to respective disk adapters that, among other things, interface the disk controllers to bus systems (e.g., small computer system interface (SCSI) based bus systems) used to couple the disk devices to the disk controllers. Similarly, the host controllers are coupled to respective host channel/network adapters that, among other things, interface the host controllers via channel input/output (I/O) ports to the network communications channels that couple the storage subsystem to standalone computer nodes (commonly termed “host” computer nodes or “hosts”) in the computer network external to the subsystem. The hosts may communicate with the subsystem via the channels using I/O protocols such as Fibre Connectivity (FICON), SCSI, Enterprise Systems Connection (ESCON), or Fibre Channel (FC) based protocols. In these communications between the hosts and the subsystem, the hosts may request that blocks of data be stored in, or retrieved from, the subsystem, by specifying (among other things) particular data block locations in the disk devices in the subsystem to which the data is to be stored, or from which the data is to be retrieved. Hereinafter, this type of communication (i.e., communication for the purpose of storing or retrieving one or more blocks of data) is termed “block-oriented” communication, and the communication protocols used to carry out such communication are termed “block-oriented” protocols, respectively.
In one conventional heterogeneous data storage network arrangement, the host computer nodes may comprise server computer nodes (commonly termed “server nodes” or “servers”). The servers may be coupled to client computer nodes (commonly termed “client nodes” or “clients”) via a communication network that may utilize a client/server-oriented I/O protocol (e.g., Transmission Control Protocol/Internet Protocol (TCP/IP), Ethernet protocol, or Gigabit Ethernet (Gig-E) protocol). In communications with the servers via the communication network, the clients may request that data be stored or retrieved from the servers and/or data storage subsystem by specifying in the requests particular filenames or handles (e.g., UNIX or network file system (NFS) filenames) associated with the data to be stored or retrieved. Hereinafter, this type of communication (i.e., communication for the purpose of storing or retrieving data wherein a filename associated with the data is specified) is termed “file-oriented” communication, and the communication protocols used to carry out such protocols are termed “file-oriented” protocols, respectively. Thus, in this conventional heterogeneous network arrangement, data exchange/communication among the servers and clients may be carried out via this communication network, using file-oriented communications; however, data exchange/communication among the servers and the data storage system may be carried out via the network communication channels, using the block-oriented communications.
The servers may be configured to provide certain services (hereinafter referred to as “server behaviors”) that may facilitate data exchange/communication among the data storage system and the clients. For example, in one type of server behavior, a server may translate into corresponding block-oriented I/O requests file-oriented I/O requests received from a client, and may forward the block-oriented I/O requests to the data storage system. The server may also translate the block-oriented responses received from the data storage system to these block-oriented I/O requests into corresponding file-oriented responses, and may forward these file-oriented responses to the client. Thus, in this type of service, the server may act as a client I/O request translation resource in the data storage network.
In other types of server behavior, the server may provide application-level program process resources. For example, the server may operate as a database engine that accesses databases stored in the data storage system. In response to file-oriented database commands (e.g., database queries), the server may provide to the data storage system block-oriented commands, and after executing the block-oriented commands, the system may provide the server with the results of system's execution of the block-oriented commands. The server may then forward these results to the client using a file-oriented communication protocol.
Thus, in this conventional network arrangement, the server nodes are standalone computer nodes or systems that are external to both the data storage system and the client nodes, and may be coupled to the network via network cabling. Such standalone server nodes may be relatively expensive and complex devices that may require substantial amounts of time and effort to install, configure, manage, and maintain in the data storage network. Also, the presence of such standalone servers in-between the data storage system and the clients introduces into the data storage network another stage, or hop, that the data must propagate through when the data moves from the clients to the data storage system, and vice versa; this may increase latency in moving data from the client nodes to the data storage system, and vice versa. Furthermore, it can be difficult to coordinate, control, and manage the independent operations of the standalone server nodes. Additionally, the cabling that may be used to couple the standalone server nodes to the network may add undesired complexity to the network, and may be a potential source of unreliable network behavior (via, e.g., injection of ambient electrical noise into the communication signals propagating through the cabling, and/or failure to properly configure the network connections made using the cabling). Moreover, the standalone server nodes may consume an undesirably large amount of geographic “floor space,” which may undesirably increase the total cost of the network.